$(document).ready(function() {
    verifyLogin();
    listEmpreendimento();

    var activeSystemClass = $('.list-group-item.active');

    //something is entered in search form
    $('#inputPesquisa').keyup(function() {
        var that = this;
        // affect all table rows on in systems table
        var tableBody = $('.table-list-search tbody');
        var tableRowsClass = $('.table-list-search tbody tr');
        $('.search-sf').remove();
        tableRowsClass.each(function(i, val) {

            //Lower text for case insensitive
            var rowText = $(val).text().toLowerCase();
            var inputText = $(that).val().toLowerCase();
            if (inputText != '')
            {
                $('.search-query-sf').remove();
                tableBody.prepend('<tr class="search-query-sf"><td colspan="6"><strong>Pesquisando Por: "'
                        + $(that).val()
                        + '"</strong></td></tr>');
            }
            else
            {
                $('.search-query-sf').remove();
            }

            if (rowText.indexOf(inputText) == -1)
            {
                //hide rows
                tableRowsClass.eq(i).hide();

            }
            else
            {
                $('.search-sf').remove();
                tableRowsClass.eq(i).show();
            }
        });
        //all tr elements are hidden
        if (tableRowsClass.children(':visible').length == 0)
        {
            tableBody.append('<tr class="search-sf"><td class="text-muted" colspan="6">Não Foram Encontrados Empreendimentos.</td></tr>');
        }
    });

});
//Botão cadastro novo empreendimento
$('#btnNovoEmpreendimento').click(function() {
    $('#inputNome').css({"border-color": "#CCCCCC"});//Remove o destaque em vermelho 
    $('#inputId').val('');
    $('#errorEmpty').hide();//Remove a mensagem de campo obrigatório
    $("#errorServer").hide();//Remove a mensagem de erro do servidor
    $('#frmEmpreendimento')[0].reset();//Limpa todo o formulário
    $('#modalEmpreendimento').modal('show');
});

$('#btnSalvar').click(function() {
    id = $('#inputId').val();
    validaCampos();
    if(id)
        $('#modalEmpreendimento').modal('hide');
});

$('#btnListarTodos').click(function() {
    $('#inputPesquisa').val('');
    listEmpreendimento();
});

$('#btnEdit').live('click', function() {
    id = $(this).attr('data-id');
    //$('#processing-modal').modal('show');
    $('#inputNome').css({"border-color": "#CCCCCC"});//Remove o destaque em vermelho 
    $('#errorEmpty').hide();//Remove a mensagem de campo obrigatório
    $("#errorServer").hide();//Remove a mensagem de erro do servidor
    $('#frmEmpreendimento')[0].reset();//Limpa todo o formulário
    populaForm(id);
});
$('#btnDelete').live('click', function() {
    id = $(this).attr('data-id');
    nome = $(this).attr('data-nome');
    $('#modalConfirmDelete').modal('show');
    $('#lblEmpreendimentoDelete').html(nome + '?');
    $('#btnConfirmDelete').click(function() {
        $('#btnConfirmDelete').addClass('disabled');
        $('#btnCancelarDelete').addClass('disabled');
        $('#deleteMessage').show();
        delEmpreendimento(id);
    });
});

//Função para inserir empreendimento
function addEmpreendimento() {
    empreendimento = JSON.stringify({
        id: $("#inputId").val(),
        nome: $("#inputNome").val(),
        incorporacao: $("#inputNumeroIncorporacao").val(),
        endereco: $("#inputEndereco").val(),
        bairro: $("#inputBairro").val(),
        numero: $("#inputNumero").val(),
        cidade: $("#inputCidade").val(),
        uf: $("#selectUf").val(),
        pontoReferencia: $("#inputPontoReferencia").val(),
        qtdAptos: $("#numberQtdeAptos").val(),
        qtdBox: $("#numberQtdeBox").val(),
        qtdDepositos: $("#numberQtdeDepositos").val(),
        qtdLojas: $("#numberQtdeLojas").val(),
        areaTotal: $("#inputAreaTotal").val(),
        observacoes: $("#txtObservacoes").val()
    });

    $.ajax({
        type: "post",
        url: rootUrl + "empreendimento/save",
        dataType: "json",
        data: empreendimento,
        success: function(result) {
            destravarFormulario();
            $('#inputNome').css({"border-color": "#CCCCCC"});
            $('#errorEmpty').hide();
            $('#frmEmpreendimento')[0].reset();//Limpa todo o formulário
            $('#inputNome').focus();
            $('#salvoSucesso').show(0).delay(2000).hide(800);
            $("#errorServer").hide();//Remove a mensagem de erro do servidor
            listEmpreendimento();
        },
        error: function(result) {
            destravarFormulario();
            $("#errorServer").html(getErrorMessage(result.responseText));
            $("#errorServer").show();
        }
    });
}

//Função para deletar empreendimento
function delEmpreendimento(id) {

    $.ajax({
        type: "post",
        url: rootUrl + "empreendimento/delete",
        dataType: "json",
        data: JSON.stringify({id: id}),
        success: function() {
            $('#deleteMessage').hide();
            $('#modalConfirmDelete').modal('hide');
            $('#btnConfirmDelete').removeClass('disabled');
            $('#btnCancelarDelete').removeClass('disabled');
            listEmpreendimento();
        },
        error: function(result) {

        }
    });
}

//Função carrega form para atualização
function populaForm(id) {
    $.ajax({
        type: "get",
        url: rootUrl + "empreendimento/list/" + id,
        dataType: "json",
        success: function(data) {
            empreendimento = data.result;
            $('#inputId').val(empreendimento.id);
            $("#inputNome").val(empreendimento.nome);
            $("#inputNumeroIncorporacao").val(empreendimento.incorporacao);
            $("#inputEndereco").val(empreendimento.endereco);
            $("#inputBairro").val(empreendimento.bairro);
            $("#inputNumero").val(empreendimento.numero);
            $("#inputCidade").val(empreendimento.cidade);
            $("#selectUf").val(empreendimento.uf);
            $("#inputPontoReferencia").val(empreendimento.pontoReferencia);
            $("#numberQtdeAptos").val(empreendimento.qtdAptos);
            $("#numberQtdeBox").val(empreendimento.qtdBox);
            $("#numberQtdeDepositos").val(empreendimento.qtdDepositos);
            $("#numberQtdeLojas").val(empreendimento.qtdLojas);
            $("#inputAreaTotal").val(moeda(empreendimento.areaTotal));
            $("#txtObservacoes").val(empreendimento.observacoes);
            //$('#processing-modal').modal('hide');
            $('#modalEmpreendimento').modal('show');
        }
    });
}

//Valida campos obrigatórios do cadastro de empreemdimento
function validaCampos() {

    if ($('#inputNome').val().length === 0) {
        $('#errorEmpty').show();
        $('#inputNome').css({"border-color": "red"});
        $('#inputNome').focus();
    }
    else {//Se passar pelas validações chama o método addEmpreendimento para adicionar o empreendimento
        addEmpreendimento();
        travarFormulario();
    }
}

function travarFormulario() {
    $('#errorEmpty').hide();
    $('form').hide();
    $('#saveMessage').show();
    $('#btnSalvar').addClass('disabled');
}
function destravarFormulario() {
    $('#errorEmpty').hide();
    $('#errorServer').hide();
    $('form').show();
    $('#saveMessage').hide();
    $('#btnSalvar').removeClass('disabled');

}
function listEmpreendimento() {
    $("#tableEmpreendimentos").find("tbody tr").remove();
    $("#tableEmpreendimentos").find("tbody").append('<tr><td colspan=10><div class="alert alert-info"><img src="img/ajax-loader.gif"> Carregando...</div></td></tr>');
    
    $.ajax({
        type: "get",
        url: rootUrl + "empreendimento/listAll",
        dataType: "json",
        success: function(data) {
            $("#tableEmpreendimentos").find("tbody tr").remove();
            data.result.forEach(function(empreendimento) {

                row = "<tr>"
                        + "<td>" + empreendimento.id
                        + "</td><td>" + empreendimento.nome
                        + "</td><td>" + empreendimento.incorporacao
                        + "</td><td>" + moeda(empreendimento.areaTotal) + " M²"
                        + "</td class='text-right'><td class='text-center'> <a class='btn btn-info btn-xs' href='#' id='btnEdit' data-id='" + empreendimento.id + "'><span class='glyphicon glyphicon-edit'></span> Editar</a> <a href='#' class='btn btn-danger btn-xs' id='btnDelete' data-id='" + empreendimento.id + "' data-nome='" + empreendimento.nome + "'><span class='glyphicon glyphicon-remove'></span> Deletar</a>"
                        + "</td></tr>";
                $("#tableEmpreendimentos > tbody:last").append(row);
            });
        }
    });
}
